package mysql8学习.高级.第19章_数据库备份与恢复;

/**
 * 7.3迁移注意点
 * 1.相同版本的数据库之间迁移注意点
 * 指的是在主版本号相同的MySQL数据库之间进行数据库移动。
 * 方式1:因为迁移前后MySQL数据库的主版本号相同，所以可以通过复制数据库目录来实现数据库迁移，
 *      但是物理迁移方式只适用于MyISAM引擎的表。对于InnoDB表, 不能用直接复制文件的方式备份数据库。
 * 方式2:最常见和最安全的方式是使用mysqldump俞令导出数据，
 *      然后在目标数据库服务器中使用MySQL命令导入。
 *
 * #host1的机器中备份所有数据库,并将微据库迁移到名为host2的机器上
 * mysqldump -h host1- -uroot -p --all-databases |
 * mysql -h host2 -uroot -p
 * 在上述语句中,“|”符号表示管道， 其作用是将mysqldump备 份的文件给mysql命令;
 * “--all-databases" 表示要迁移所有的数据库。通过这种方式可以直接实现迁移。
 *
 * 2.不同版本的数据库之间迁移注意点
 *   例如，原来很多服务器使用5.7版本的MySQL数据库,在8.0版本推出来以后，
 *   改进了5.7版本的很多缺陷,因此需要把数据库升级到8.0版本
 *   旧版本与新版本的MySQL可能使用不同的默认字符集，例如有的旧版本中使用latin1作为默认字符集，
 *   而最新版本的MySQL默认字符集为utf8mb4。
 *   如果数据库中有中文数据,那么迁移过程中需要对默认字符集进行修改，不然可能无法正常显示数据。
 *   高版本的MySQL数据库通常都会兼容低版本,因此可以从低版本的MySQL数据库迁移到高版本的MySQL数据库。
 *
 * 3.不同数据库之间迁移注意点
 * 不同数据库之间迁移是指从其他类型的数据库迁移到MySQL数据库，
 * 或者从MySQL数据库迁移到其他类型的数据库。这种迁移没有普适的解决方法。
 * 迁移之前，需要了解不同数据库的架构，比较它们之间的差异。
 * 不同数据库中定义相同类型的数据的义键字可能会不同。
 * 例如，MySQL中日期字段分为DATE和TIME两种,而ORACLE日期字段只有DATE;
 * SQL Server数据库中有 ntext, Image等数据类型， MySQL数据库没有这些数据类型;
 * MySQL支持的ENUM和SET类型， 这些SQL Server数据库不支持。
 *
 * 另外，数据库厂商并没有完全按照SQL标准来设计数据库系统，导致不同的数据库系统的SQL语句有差别。
 * 例如，微软的SQL Server软件使用的是T-SQL语句, T-SQL中包含 了非标准的SQL语句,
 * 不能和MySQL的SQL语句兼容。
 *
 * 不同类型数据库之间的差异造成了互相辽移的困难，这些差异其实是商业公司故意造成的技术壁垒。
 * 但是不同类型的数据库之间的迁移并不是完全不可能。
 * 例如，可以使用MyODBC实现MySQL和SQL Server之间的迁移。
 * MySQL官方提供的工具MySQL Migration Toolkit也可以在不同数据之间进行数据迁移。
 * MySRL迁移到Oracle时, 需要使用mysqldump命令导出sql文件，然后，手动更改 sql文件中的CREATE语句。
 *
 */
public class G3_数据库迁移注意点 {
}
